//
//  ControllerB.swift
//  RPLogManager_Example
//
//  Created by John on 2023/12/9.
//  Copyright © 2023 john. All rights reserved.
//

import UIKit

class ControllerB: UIViewController {
    var name: String

    // B 的指定初始化器
    init(name: String) {
        self.name = name
        super.init(nibName: nil, bundle: nil)
        // 其他 B 的初始化逻辑...
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .red
    }
}

class ControllerA: ControllerB {

    // A 的指定初始化器，调用了父类 B 的指定初始化器
    init(name: String, additionalProperty: Int) {
        super.init(name: name)
        // A 自己的初始化逻辑，可以设置额外的属性
    }

    // 如果 ControllerA 中有自己的属性需要初始化，还需要实现这个初始化器
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .purple
    }
}

// 使用 ControllerA 的指定初始化器创建实例
let controllerA = ControllerA(name: "ExampleName", additionalProperty: 42)
